const express = require('express');
const router = express.Router();
const productController = require('../controllers/productController');
const { authenticateToken, authorizeRole } = require('../middlewares/auth');
const { validateProduct, validateProductId } = require('../middlewares/validators/productValidator');

// 获取所有商品
router.get('/', authenticateToken, productController.getAllProducts);

// 获取单个商品
router.get('/:id', authenticateToken, validateProductId, productController.getProduct);

// 创建商品（需要管理员权限）
router.post('/', authenticateToken, authorizeRole('admin'), validateProduct, productController.createProduct);

// 更新商品（需要管理员权限）
router.put('/:id', authenticateToken, authorizeRole('admin'), validateProductId, validateProduct, productController.updateProduct);

// 更新商品库存（需要管理员或经理权限）
router.put('/:id/stock', authenticateToken, authorizeRole(['admin', 'manager']), validateProductId, productController.updateStock);

// 更新商品状态（需要管理员权限）
router.put('/:id/status', authenticateToken, authorizeRole('admin'), validateProductId, productController.updateStatus);

// 删除商品（需要管理员权限）
router.delete('/:id', authenticateToken, authorizeRole('admin'), validateProductId, productController.deleteProduct);

module.exports = router; 